//index.js
//获取应用实例
const app = getApp()
const TOP_DISTANCE = 1000
Page({
  data: {
    Rotation:[],//轮播图
    HeadTime:[],//时间段
    commodity:[],//商品信息
    page: 1, //当前页码
    pages: 0, //总页数
    cars: [],//商品信息
    showBackTop: false,
    isTopFiexd: false,
    isBottom: false,
    tabScrollTop: 0,
    page: 0,//页码
    num: 0,//总页数
    cid:'',//秒杀id
    h:'',//小时
    m:'',//分钟
    s:'',//秒
    interval:'',
    DateTime:'',//当前时间小时
    indicatorDots:false,//轮播图小点
    userName: '',//搜索框值
    Login:'',//判断是否登录

  },
    //获取搜索框输入的内容
    userNameInput:function(e)
    {
      this.setData({
      userName: e.detail.value
      })
    },
    //点击搜索  跳转携带参数
  Search(){
    wx.redirectTo({
      url: '../productSearchMob/productSearchMob?key='+this.data.userName
    }) 
  },

  //跳转秒杀页面
  Seckill:function(){

    wx.redirectTo({
      url: '../Seckill/Seckill'
    })
  },
//秒杀轮播图 跳转 详情页面
SeckillBox:function(event){
  //console.log(event)
  let id = event.currentTarget.dataset.id;
  //console.log(id)
    wx.redirectTo({
          url: '../goods/goods?mid='+id
    })
},
// 点击登录跳转登录页面
Login:function(){
  if(this.data.Login == '退出'){
    wx.removeStorage({
      key: 'token',
      success (res) {
        //console.log(res)
      }
    })
  }
    wx.redirectTo({
      url: '../Login/Login'
    })
  
},

//分类 跳转 分类页面
Class:function(){
  wx.redirectTo({
    url: '../goods/goods'
  })
},
//跳转分类
Class_xi:function(){
  wx.redirectTo({
    url: '../goods/goods'
  })
},
//商品 跳转 详情页面
Commodity:function(event){
  //获取参数
  let id = event.currentTarget.dataset.id;
  //跳转携带参数
    wx.redirectTo({
        url: '../goods/goods?cid='+id
      })
    },




 /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {


   // 取出商品数据 进行下拉加载
   this._ComdData();
   // 获取导航栏位置
  this.imageload()
   //网络请求 获取轮播图商品信息　　
   var that =this;
//判断是否登录
   wx.getStorage({
    key: 'token',
    success(res) {
      that.setData({
        Login:'退出'
      });
    },
    fail: function () {
      that.setData({
        Login:'登录'
      });
    }
  });
  wx.request({
    url: 'http://47.104.142.216/TP/public/index.php/index/Home/Rotation',
    dataType:'json',
    method:'POST',
    header:{
      'content-type':'application/x-www-form-urlencoded'
    },
    success:function(res){
      
        that.setData({
          Rotation:res.data
        });
        //console.log(res.data);
    }
  });
  //获取秒杀商品
  wx.request({
    url: 'http://47.104.142.216/TP/public/index.php/index/Home/shopList',
    dataType:'json',
    method:'POST',
    header:{
      'content-type':'application/x-www-form-urlencoded'
    },
    success:function(res){
      
        that.setData({
          Seckill:res.data
        });
        //console.log(res.data);
    }
  });

    //获取时间段数据 进行判断渲染当前时间段商品
    wx.request({
      url: 'http://47.104.142.216/TP/public/index.php/index/Kill/DataTime',
      dataType:'json',
      method:'POST',
      header:{
        'content-type':'application/x-www-form-urlencoded'
      },
      success:function (res){
        var d=new Date();
        
        that.setData({
          HeadTime:res.data,
          DateTime:d.getHours(),
        })
        //console.log(that.data.DateTime)
        that.getShop();
      }
    });
  },

// ————————调用层————————

//判断当前时间段 进行渲染该时间段活动商品和该场结束时间倒计时，活动还未开始就渲染即将开抢商品和下场开始时间倒计时
getShop:function(){

  //循环时间段 获取出该时间段id
  for(var a of this.data.HeadTime){
    if(this.data.DateTime >= parseInt(a.kill_start_time) && this.data.DateTime < parseInt(a.kill_stop_time)){
          let id =a.kill_id;
          this.setData({
            cid :id
            
          })        
          let stop_time =a.kill_stop_time;//下场开始时间       
         this.timeFun(stop_time);//调用结束时间
         //console.log(stop_time);    
    }else{
       //当时间段id为空时候 就是活动还未开始 ，就获取即将开始的时间段
       if(this.data.cid == ''){
          if(this.data.DateTime < parseInt(a.kill_start_time)){
            this.setData({
              cid :a.kill_id
            })
          let start_time = a.kill_start_time;//结束时间
            //console.log(start_time);
            this.timeFun(start_time);//调用开始时间

          }
       }
    }
  } 
      //console.log(this.data.cid);
      this.getShoping(this.data.cid);//调用该时间段id或下个时间段id
},

    //点击时间段判断结束时间或下场开始时间
    get(event){
      this.setData({
        interval:'',
      })
       var id =event.currentTarget.dataset.id;
       var time =event.currentTarget.dataset.time;
       //console.log(time);
        //点击获取 点击时间段的开始时间  传参数  
       this.timeFun(time);//调用结束时间
       this.getShoping(id)//传id查该时间商品
    },

//通过时间段id 获取当前时间段的商品信息
getShoping(id){
  var that =this;

  //网络请求  获取该时间段的所有上架商品
  wx.request({
    url: 'http://47.104.142.216/TP/public/index.php/index/Kill/Rotation_chart',
    data:{cid:id},
    dataType:'json',
    method:'POST',
    header:{
      'content-type':'application/x-www-form-urlencoded'
    },
    success:function(res){

      that.setData({
        Shoplist:res.data,
        
      })
      //console.log(res.data)
    
    }
  })

},
//倒计时
timeFun(timeStamp) {

  var interval = this.data.interval;
  clearInterval(interval);

  let jieshu =timeStamp;
  //console.log(jieshu);
  if(jieshu ==''){
    this.setData({
      h:'00',
      m:'00',
      s:'00',
    })
  }
 //console.log(jieshu);
 //获取当前时间 跟场次结束时间进行拼接
  var date = new Date();
  let y = date.getFullYear();//获取当前年
  let m = date.getMonth() + 1; //获取当份
  m = m < 10 ? ('0' + m) : m;
  let d = date.getDate();//获取当前几号
  d = d < 10 ? ('0' + d) : d;
  let h = date.getHours();  //获取当前小时
  h=jieshu< 10 ? ('0' + jieshu) : jieshu;
  let minute = date.getMinutes(); //获取当前几分
  minute = minute < 10 ? ('0' + '0') : '0';
  let second=date.getSeconds();//获取当前几秒
  second=second < 10 ? ('0' + '0') : '0';
  //进行拼接
  let time= y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;
  //倒计时结束时间  
  var to=new Date(time);
 // console.log(to);

 interval = setInterval(() =>{
    //当前的时间
    let  now=new Date();
    //console.log(now);
    //剩余时间
    let shengTime= to-now;
    //算出几时几分几秒
    let h =Math.floor((shengTime /1000/3600)%24);
    let m =Math.floor((shengTime /1000/60)%60);
    let s =Math.floor(shengTime /1000%60);

    if (shengTime >0) {

        this.setData({
          h :(h < 10 ? "0" + h : h),
          m :(m < 10 ? "0" + m : m),
          s :(s < 10 ? "0" + s : s),    
      })
        
    }else{
              //停止计时器
              clearInterval(interval);
              
    }
    //let jishi=""+ (h < 10 ? "0"+ h : h) + (m < 10 ? "0"+ m : m) + (s < 10 ? "0" + s : s);
     //console.log(jishi);

  },1000) 
},


  //商品进行下拉加载
  _ComdData(){
    var that = this;
    const page = that.data.page + 1
    that.setData({
      page: page
    });
    const data = {
      page: page
    };
     wx.request({
      url: 'http://47.104.142.216/TP/public/index.php/index/Home/getArticles',
      dataType:'json',
      method:'POST',
      header:{
        'content-type':'application/x-www-form-urlencoded'
      },
      data:data,
      success:function (res){
        const cars = res.data.data;
        that.setData({
          cars: cars,
          num: res.data.num
        })

      }
    });
  },

  // ----------事件-----------
  handelTabClick(event){
    const index = event.detail.index;
    this.setData({
      currentType: index+1,
      page: 0,
      isBottom: false
    })
    // 取出商品数据
    this._getCarData()
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
onReachBottom() {
    // 上拉加载更多
    if(this.data.page>this.data.num){
      this.setData({
        isBottom: true
      })
      return
    }
    this._ComdData()
},
// 官方：不要再滚动事件里频繁调用 this.setData
onPageScroll(options){
  // 取出scrollTop
  const scrollTop = options.scrollTop;
  const flag = scrollTop >= TOP_DISTANCE;
  if(flag != this.data.showBackTop){
    this.setData({
      showBackTop: flag
    })
  }
  // 导航
  const flag1 = scrollTop >= this.data.tabScrollTop
  if(flag1 != this.data.isTopFiexd){
    this.setData({
      isTopFiexd: flag1
    })
  }
},
imageload(){
  wx.createSelectorQuery().select('#tab-control').boundingClientRect(rect => {
    this.data.tabScrollTop = rect.top
  }).exec()
},
handleBackTop(){
  wx.pageScrollTo({
    scrollTop: 0,
  })
}
   
      
})
